{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`legend()` 函数被用来添加图像的标签，其主要相关的属性有：\n",
    "\n",
    "- legend entry - 一个 legend 包含一个或多个 entry，一个 entry 对应一个 key 和一个 label \n",
    "- legend key - marker 的标记\n",
    "- legend label - key 的说明\n",
    "- legend handle - 一个 entry 在图上对应的对象"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 使用 legend"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "调用 `legend()` 会自动获取当前的 `Axes` 对象，并且得到这些 handles 和 labels，相当于：\n",
    "\n",
    "    handles, labels = ax.get_legend_handles_labels()\n",
    "    ax.legend(handles, labels)\n",
    "\n",
    "我们可以在函数中指定 `handles` 的参数："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa1a1940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "line_up, = plt.plot([1,2,3], label='Line 2')\n",
    "line_down, = plt.plot([3,2,1], label='Line 1')\n",
    "plt.legend(handles=[line_up, line_down])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以将 labels 作为参数输入 `legend` 函数："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAF95JREFUeJzt3X+M1PWdx/HXG1jrWmxhi4IoK8lBW9sKWhXw5w6N11Su\nxYZeiomE0CilPdcfJeYoIBHJWZMzJp69KhaXruQabAW1KlqTQxcxBoiwCFbxR+SHikXiUk8k6qLv\n+2Nn191lZufXd+b76/lIJpkfn5357rfjh2c/+53vmLsLAJAcg8LeAABAsJjYASBhmNgBIGGY2AEg\nYZjYASBhmNgBIGEGnNjN7Hgz22xm283sZTO7Lc+4u8zsdTN70czOrs6mAgCKMWSgB939YzOb6u5H\nzGyIpOfM7CJ3f657jJlNkzTO3ceb2WRJ90iaUt3NBgDkU3Apxt2PZK8eJ2mwpI5+Q6ZLuj87drOk\nYWY2MsiNBAAUr+DEbmaDzGy7pAOSnnH3l/sNOVXSW71uvy3ptOA2EQBQimKK/XN3P0tdk/UlZpbJ\nMcz6/1gA2wYAKMOAa+y9ufsHZrZO0rmS2no99I6kMb1un5a9rw8zY7IHgDK4e/94HlCho2JGmNmw\n7PV6Sf8sqb3fsEclzc6OmSLpH+5+INfzrdi6QiP+c4T+Y8N/qPOzTrk7lzIuN998c+jbkKQL+5P9\nGZXLmjWuUaNcN97oOnKk675yFFqKOUXS09k19s2SHnP39WY2z8zmSZK7PyHpTTN7Q9K9kv4t35Nd\n/d2rtfXnW/Xsvmc15b4peum9l8raaABIkoMHpZkzpcWLpYcekm6/XaqvL//5BpzY3X2nu3/X3c9y\n9wnufnv2/nvd/d5e45rdfZy7T3T3bQM9Z+NXG/XXK/+qX5z7C029f6puffZWHf38aPm/AQDE2Nq1\n0oQJUmOj1N4unX9+5c8ZyidPzYx6r0Amkwl7ExKF/Rks9mdxgq703qzcNZySX8jMc72Wu6ulvUUL\n1y/UDZNv0IKLFmjIoKL/pgsAsbN2rdTcLM2aJS1bNvCEbmbyEv94GvrE3m3fB/s097G5ev/I+2r9\ncau+c/J3arJdQNKZlTQnIES55shYT+wS9Q5UQ3ZiCHszUEC+/51iP7F3o96B4DCxx0OQE3skT9vL\nkTMAUL5IFntv1DtQGYo9HhJf7L1R70A6bdy4Ud/85jfD3oxYivzELnHcO5BkY8eO1fr164+5/+KL\nL9auXbsCf709e/Zo0KBB+vzzz/vcP2fOHC1ZsiTw1wtDLCb2btQ7kDxmFolDMqOyHUGI1cQuUe9A\nWrS1tWnMmC9OHDt27FjdcccdmjhxooYNG6YrrrhCn3zySc/jjz/+uM466ywNHz5cF154oXbu3Fn2\na7e2turCCy/Utddeq2HDhumMM87Q008/XdHvU0uxm9i7Ue9AupiZHnzwQT311FPavXu3duzYodbW\nVklSe3u7rrrqKq1YsUIdHR2aN2+epk+frk8//bTs19uyZYvGjRun999/X7fccotmzJihQ4cOBfTb\nVFdsJ3aJegeCYhbMpdquu+46jRo1SsOHD9ePfvQjbd++XZL0+9//XvPmzdN5550nM9Ps2bP1pS99\nSZs2bSr7tU4++WRdf/31Gjx4sH7605/qG9/4htatWxfUr1JVsZ7Yu1HvQGXcg7lU26hRo3qu19fX\n6/Dhw5KkvXv36o477tDw4cN7Lm+//bbefffdY55jyJCuT7N3dnb2ub+zs1N1dXU9t0899dQ+j59+\n+unav39/YL9LNSViYpeodyCNuv/Y2djYqMWLF+vQoUM9l8OHD2vmzJnH/Mwpp5yiuro67d69u8/9\nb775pk4//fSe2++80/eL4Pbu3XvMZB9ViZnYu1HvQPx8+umn+vjjj3sun332WVE/1/2Bnrlz52r5\n8uXasmWL3F0fffSR1q1b11P0vQ0ePFg/+clPtHjxYnV0dKizs1OrV6/Wrl27dNlll/WMe++993TX\nXXeps7NTDz74oF599VVNmzYtmF+4yhI3sUvUOxA306ZN0wknnNBzueWWWwoeftj78XPOOUcrVqxQ\nc3OzGhoaNH78eK1atSrvz959991qaGjQhAkTNHLkSN19991at26dTjrppJ4xkydP1uuvv66TTjpJ\nS5Ys0Zo1azR8+PDgfukqivwpBSrFGSORdpxSoHStra1qaWnRxo0ba/aaqTqlQKWodwBpk/iJvRtr\n7wCKFfdPoSZ+KSYXzhiJNGEpJh5YiqkQ9Q4gyVJZ7L1R70g6ij0eKPYAUe8Akib1xd4b9Y4kotjj\ngWKvEuodQBIwsffDce9ANPDVeOVjYs+Degdqo9ZfjSdJgwYN0tChQ3XiiSdqxIgRuvTSS/XnP/+5\nKq8VBib2AVDvQPWF9WGgHTt26MMPP9Rrr72mOXPmqLm5WcuWLav5dlQDE3sRqHeg9mr11XgNDQ2a\nNWuW7rnnHt12220935K0f/9+TZ8+XV/72tc0fvx43XfffZKkjz/+WPX19ero6JAk3Xrrraqrq+s5\nk+SSJUv0q1/9SlLXF2Rfc801+uEPf6ivfOUrmjJlit58883Kd04BTOxFot6BcFX7q/GmT5+uo0eP\nasuWLZKkK664Qo2NjXr33Xe1Zs0aLVq0SM8884yOP/54TZo0SW1tbZKkDRs2aOzYsXruued6bmcy\nmZ7n/dOf/qSlS5fq0KFDGjdunBYvXhzI/hgIpzksUXe9t7S3aOr9UzljJBLBbglmKcRvru5hld1f\njScp71fjSdLs2bP1m9/8Rps2bdIll1xS1HPX1dVpxIgR6ujo0FtvvaXnn39eTz75pI477jhNnDhR\nV199tVatWqWpU6eqqalJGzZs0OWXX66dO3dq0aJFPRP6Cy+80POaZqYZM2bo3HPPlSRdeeWVmj9/\nftC75RjMRmXorvfv/9P3NfexuXr4voc57h2xVu0JOSj9vxqv+6vq9u7dq1WrVum3v/1tz+OdnZ05\nvxovn87OTh08eFANDQ3av3+/Ghoa9OUvf7nn8cbGRr3wwguSpKamJs2fP1/btm3TmWeeqUsvvVRX\nXXWVNm/erHHjxvU5b/vIkSP7bHOuL/8IGksxFWDtHQhXOV+Nl89f/vIXDRkyRJMmTdLo0aPV0dHR\nZxLet2+fTjvtNEnS+eefr1dffVUPP/ywMpmMzjjjDO3bt09PPPFEn2WYsDCxV4i1d6BytfxqvP4/\n29HRoT/+8Y9qbm7Wr3/9aw0fPlxjxozRBRdcoIULF+qTTz7Rjh07tHLlSs2aNUuSdMIJJ+icc87R\n7373OzU1NUmSLrjgAi1fvrzndu/XqDUm9oBQ70D5av3VeJI0ceJEnXjiiRo/frxWrlypO++8U0uX\nLu15fPXq1dqzZ49Gjx6tGTNmaNmyZfre977X83hTU5OOHj2qSZMm9dw+fPhwnzX9XL9DLQ7t5Fwx\nVcA5ZxAlnCsmHjhXTMRR7wDCRLFXGfWOsFHs8UCxxwj1DqDWKPYaot4RBoo9Hij2mKLeAdQCxR4S\n6h21QrHHQ5DFzsQeIndXS3uLFq5fyDlnUDVhnBIX5WFiTxDqHWly8KDU3Cy9+KL0hz9I558f9hZF\nG2vsMcXaO9Ji7VppwgSpsVFqb2dSrxaKPWKodyQRlV6+wIvdzMaY2TNm9jcze8nMrssxJmNmH5hZ\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa2f03c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "line_up, = plt.plot([1,2,3])\n",
    "line_down, = plt.plot([3,2,1])\n",
    "plt.legend([line_up, line_down], ['Line Up', 'Line Down'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 产生特殊形状的 marker key"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "有时我们可以产生一些特殊形状的 marker：\n",
    "\n",
    "块状："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEk9JREFUeJzt3W2MnFXdx/Hvv1tEK1tKLTbYR6pEECKCscItdxmf4opB\nEokQEGjRBEICgVeW9oXdRIWgRg2acCOphBcqiSDSmyAEwYmKgFQFLLRI4cY+rJKiPLRY04f93y92\n2G6X3XnYzszS4/eTTDJnrnOd+fd057fXnmuumchMJEllmTLZBUiS2s9wl6QCGe6SVCDDXZIKZLhL\nUoEMd0kqUMNwj4gfRsQLEfHnOn2uj4hnIuLxiDipvSVKklrVzJH7zUDfeBsj4gzgPZl5DHAJcEOb\napMkTVDDcM/M3wAv1enyWeCWWt9HgBkRMbs95UmSJqIda+5zgM0j2luAuW0YV5I0Qe06oRqj2n6m\ngSRNoqltGGMrMG9Ee27tsf1EhIEvSROQmaMPoBtqx5H7GuAigIg4BXg5M18Yq2Nmestk1apVk17D\nm+XmXDgXzkX920Q1PHKPiJ8ApwOzImIzsAo4pBbWN2bm3RFxRkRsBF4DLp5wNZKktmgY7pl5XhN9\nLm9POZKkdvAK1UlQqVQmu4Q3DediH+diH+fiwMWBrOm09EQR2a3nkqRSRAQ5gROq7Xi3jKQuiGj5\n9a2DTDsPgA136SDiX7/lavcvb9fcJalAhrskFchwl6QCGe6SOq6/v58LL7xwsssAoFqtMm/evMYd\nayqVCqtXr+5gRZ1huEsHs4jO35pw2GGH0dvbS29vL1OmTGHatGnD7R//+McH9Tt9IqLp+hcuXMgD\nDzzQ4YqaY7hLOmA7duxg+/btbN++nQULFnDXXXcNt88///yOvstncHCwY2O3qvae9MkuAzDcJXVB\nRLBr1y6WLl3K9OnTOeGEE/jDH/4wvH1gYICzzz6bd77znSxatIjvfe974461bNkyLrvsMs444wwO\nO+wwqtVq3f137tzJsmXLmDlzJscffzyPPvpo3Vrvu+8+jj32WGbMmMEVV1yx3wd4Pfvss3zsYx9j\n1qxZHHnkkVxwwQW88sorAFx44YVs2rSJM888k97eXr71rW8B8PnPf56jjjqKGTNmcPrpp/PUU09N\neB5b0sVPNktJEzfmawg6f2vRwoUL8/7779/vsVWrVuVb3/rW/MUvfpGDg4O5YsWKPOWUUzIzc+/e\nvXnyySfnV7/61dy9e3c+99xzuWjRorz33nvHHH/p0qV5+OGH5+9+97vMzPzXv/5Vd//ly5fnkiVL\n8qWXXsrNmzfn8ccfn/PmzRtz7G3btmVvb2/efvvtuWfPnvzOd76TU6dOzdWrV2dm5saNG/OXv/xl\n7tq1K7dt25ZLlizJq666qu6//eabb84dO3bkrl278qqrrsoPfOADYz73eBlZe7z1zJ3IThN6IsNd\nOiAHe7h/8pOfHG4/+eST+ba3vS0zMx9++OGcP3/+fv2vueaavPjii8ccf9myZbl06dLhdqP9R/+i\n+MEPfpBz584dc+xbbrklTz311P0emzt37nC4j3bHHXfkSSedNNwe698+0ksvvZQRka+++uobtrU7\n3L1CVVJXzJ6976uVp02bxr///W8GBwf561//ysDAAEccccTw9r1797JkyZJxx5o7d983eTbaf2Bg\nYL93x8yfP3/ccQcGBvYbG9hv3xdeeIErr7yS3/72t2zfvp3BwUFmzpw57niDg4OsXLmS2267jW3b\ntjFlyhQighdffJHe3t5x92sHw11Sx9V7t8m8efM4+uij+ctf/jKh8ebPn193/6OOOopNmzZx3HHH\nAbBp06Zxx33Xu97FnXfeOdzOTDZv3vcV0StXrqSnp4d169YxY8YMfv7zn3PFFVeMWRfAj370I9as\nWcP999/PggULePnll5k5c+brqxkd5QlVSR1XL8wWL15Mb28v3/jGN9i5cyd79+5l3bp1rF27tqmx\nGu1/zjnncO211/Lyyy+zZcuWuidrP/OZz/Dkk09yxx13sGfPHq6//nr+/ve/D2/fsWMHb3/725k+\nfTpbt27lm9/85n77z549m2effXa//oceeigzZ87ktddeY+XKleNPUpsZ7pI6bqz3ir/e7unp4a67\n7uKxxx5j0aJFHHnkkVxyySW8+uqrTY01ZcqUuvuvWrWKBQsWcPTRR9PX18dFF1007l8S73jHO/jp\nT3/K1VdfzaxZs9i4cSOnnXba8PZVq1bxxz/+kcMPP5wzzzyTs88+e7+xVqxYwde+9jWOOOIIvv3t\nb3PRRRexYMEC5syZwwknnMCpp57atff8+3nu0kHizfQearXfeP+/E/08d4/cJalAhrskFchwl6QC\nGe6SVCDDXZIKZLhLUoG8QlU6iBzMn4uu7jLcpYOE73FXK1yWkaQCGe6SVCDDXZIKZLhLUoEMd0kq\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa2f0a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.patches as mpatches\n",
    "\n",
    "red_patch = mpatches.Patch(color='red', label='The red data')\n",
    "plt.legend(handles=[red_patch])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "点线组合："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nEFOmWk0euQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xa7d23c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.lines as mlines\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "blue_line = mlines.Line2D([], [], color='blue', marker='*',\n",
    "                          markersize=15, label='Blue stars')\n",
    "plt.legend(handles=[blue_line])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 指定 legend 的位置"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`bbox_to_anchor` 关键词可以指定 `legend` 放置的位置，例如放到图像的右上角："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAESCAYAAADaLCNlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFqNJREFUeJzt3X+MVeWdx/HPdwRTWlBEu8OiTMbaatdWg60KVSx3mi5B\n/NU/TGwCNnWFqru2JbutxNZE1tg0EUysMbsSOzpE2tottEWqdHGRC9ZWNkvBgqKWditgCtj6Y1VK\nBf3uH3NnvFzunfvrnHvOec77lZzkzszjmcfjdZ6877nnHnN3AQDQrq6kJwAACAMLCgAgEiwoAIBI\nsKAAACLBggIAiAQLCgAgEqOSngAApImZcS1FA9zdKr/HggIAFbg+b2RmR60lknjJCwAQERYUAEAk\nWFAAAJFgQQEARIIFBQAyore3V48//nhb+xgYGNBFF110xPfWr1+vvr4+jR8/XqeeemrL+2ZBAYCM\nMLNY3oE2duxYzZs3T4sXL25rPywoAJABV199tXbt2qXLLrtM48aN05IlS/TUU0/pggsu0AknnKAp\nU6Zow4YNw+MHBgZ02mmn6bjjjtOHPvQhff/739dzzz2n66+/Xr/61a80btw4TZgwQZJ03nnnac6c\nOW3ViaTB91uzsbGxsQ1ug38W06m3t9fXrVvn7u579uzxE0880desWePu7o899pifeOKJ/qc//cnf\nfPNNP+644/yFF15wd/e9e/f6M8884+7uAwMDPn369Kr7f+yxx7y3t7fuPErH6KhjR6EAQBPMotna\ntXz5cs2ePVuzZs2SJH32s5/Vueeeq0ceeURmpq6uLm3btk1/+ctf1N3drTPPPFNSvBdtsqAAQBPc\no9na9eKLL+pHP/qRTjjhhOHtySef1N69e/X+979fP/zhD3Xvvfdq0qRJuvTSS/X888+3/0vrYEEB\ngIwo/8iTnp4eXX311Xr11VeHtzfeeEM33XSTJGnmzJlau3at9u7dq49+9KOaP3/+UfuIGgsKAGRE\nd3e3fve730mS5syZo9WrV2vt2rV65513dPDgQRWLRb300kvav3+/Vq1apbfeekujR4/WBz7wAR1z\nzDHD+9izZ48OHTo0vF9318GDB3Xo0CG5u/7617/q7bffbn6C1U6ssLGxseV1U4pPyq9atcp7enp8\n/Pjxfuedd/qmTZt8xowZPmHCBP/gBz/ol156qe/evdv/+Mc/+owZM/z444/38ePHe19fn+/YscPd\n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\nVsmYJAjFAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb7f8630>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot([1,2,3], label=\"test1\")\n",
    "plt.plot([3,2,1], label=\"test2\")\n",
    "plt.legend(bbox_to_anchor=(1, 1),\n",
    "           bbox_transform=plt.gcf().transFigure)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "更复杂的用法："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nu9RzUXWNDRGREMlZ2M2sysw2Eb859Tp3fyNliK6xISISIjkDSu5+BLjAzAYBvzSzJnePpQzLeQ0D\n3fNUCs2z3H5R37/csh0/KS95nxXj7n8BVgLjUt7K+xoGp915Gvf95j6OHDlS8msgd23z5s0r+Rw0\nr55vu3c7X/2qM2aM89JL+dXsUs85zJtES66zYk4zs9rE4wHAl4GNKcPyvoZB7Bsx7t94P1OXTuXd\nPe/2efJSmZYvh/POg+HDYeNGuOyyUs9IJFxydeyfB55NrLFvADrcfa2Z3ZR0zZJVwJ8S1zBYBPzv\nTDs793Pnsv769VzZcCXj/msci367SN2C5O3Pf4arr4Yf/hCeeALa2mDAgFLPSiR8inatGDPz5M/a\nvHsz1664ltqTarm/5X5G1I4oyjxSxWIxmpqaSvLZ2Whex1q+HG69FWbPhh/96PiCbmZ4jjV2NRGZ\n5Tp+Ul5KVtgBDh05RNuLbdz18l3c0XwHN158I4krfYoA8S79llvg1Vdh8eLMyy4q7H2jwh4tJb2k\nwAlVJ/D9Sd/X2rukVSlr6Q0NDTz77LN92seSJUuYNGnSMa+tW7eO5uZmamtraWxs7NP+pbyE4lox\nWnuXZJW2lp7olgPfb01NDd/85jdpa2sLfN8SckU8ncrz8fr7r/u4n43zKQ9P8Xc+fievn5HoePxx\n9zPOcP/e99z37cv/5xLfrz5//4pt9uzZXlVV5QMGDPCamhpva2vz9evX+2WXXea1tbV+/vnneywW\n6x6/ePFiHzlypJ966qne2Njojz76qG/ZssVPPPFE79evn9fU1PjgwYOP+YxnnnnGGxoass4j1/HT\nVl5b8T6oB3+xOg93+r89929+2p2n+X2/uc+PHDmS989Kedq92/2rX3UfM8b9pZd6/vPlWtjd3Rsa\nGnzt2rXu7r5jxw4fOnSor1692t3jRXno0KH+wQcf+N69e33gwIG+bds2d3fftWuXb9682d3dlyxZ\n4pdffnna/auwV94WiqWYVFp7ryyVspaej6VLlzJjxgymTZsGwJQpUxg3bhwrV67EzKiqquK1117j\ns88+o66ujnPOOQeg6x8vESAka+yZaO092sK0lm4WzNZX7777Lo8//jiDBw/u3l588UV27drFySef\nzLJly7jvvvs488wzmTVrFlu3bu37h0rkhLqwg7r3qApbl+4ezNYbyaf4Dh8+nK997Wt8/PHH3dsn\nn3zCP//zPwMwdepU1qxZw65du/jiF7/IDTfccNw+REJf2Luoe4+GMHXpYVFXV8dbb70FwDXXXENH\nRwdr1qzh8OHD7N+/n1gsxs6dO9m9ezcrVqzg008/pbq6mlNOOYV+/fp172PHjh10dnZ279fd2b9/\nP52dnbg7Bw4c4ODBgyX5M0qRFWsxnwB/eaUzZ8pTb894yQdl/MvTFStW+PDhw722ttYXLlzoGzZs\n8MmTJ/uQIUP89NNP91mzZvn27dv9vffe88mTJ/ugQYO8trbWm5ubfcuWLe7ufvDgQZ85c2b3z7i7\nr1u3zs3MzcyrqqrczLy5uTntHHIdP23ltZU0edoXSq2Wj3zTo32h5GnfKHkaLWWzFJNKa+/lIWxr\n6SKVoGwLexetvYeT1tJFSqfsCzuoew8bdekipRWJwt5F3XtpqUsXCYdIFXZQ914q6tJFwiPXrfHq\nzWydmW02s9fNbE6aMU1m9hcz25jYfli46eZP3XtxqEsXCZ+spzua2RnAGe6+ycxqgN8Bf+/uW5LG\nNAHfdffWrB9UwtPNwnK3pqjJdVejYtLpjn2j0x2jJWvH7u673H1T4vFeYAtwZpqhof5CqHsPlrp0\nkXDLe43dzBqAC4nf1DqZAxPM7FUzW2Vm5wQ3veBo7T0YWksXCb+8CntiGWY58O1E557sFaDe3c8H\n/gN4MtgpBkvde++oSy+cQt0ar62tjbFjxzJw4EBGjhzJggUL+vQZUj5OyDXAzKqBXwBL3f24ou3u\nnyQ9Xm1m/9fMhrj7R6lj58+f3/24qampJHe7h6Pde+uYVq5dcS3LtyzX2nsWyWvpS5aEo6DHYjFi\nsVippxGIQt0aD+CRRx7hvPPO480332Tq1KnU19dz9dVXF+SzJESyXUiG+Nr5w8C/ZxlTx9Ffwl4C\nvJNhnIeR7taUWV/valRMlOlFwIpxa7wuc+bM8VtvvTXte7mOn7by2rK/CZcDR4BNwMbENh24Cbgp\nMeZbwOuJMS8B4zPsy8NMV4w8ViGvxFgI5VrY3Qt/azx39yNHjvgFF1zgixYtSvu+Cnu0tqxLMe7+\nArnPnPlP4D/z/A9CaHWtvbe92Ma4/xpXsVeMTL4S4xNP6JejxZbt1nhXXXVV963xhg0bRl1dHXV1\ndUDuW+N1LYNed911BZ2/hEPONfZKUulr72FcSy8Wuz2Yf8B9Xt/WyrtujdfR0dH92qFDh7jyyiu7\nb423YMECrr/+eiZOnMjChQsZM2ZM1n3ee++9LF26lOeff57q6uo+zU/KRLH+a0CI/yucTiWtvZfT\nWnomlPFSTGNjY/dSzI9//GO/4YYbcv7M/v37fe7cuT5p0iR3z7wU88ADD3h9fb2//fbbWfeX6/hp\nK68tcteKCUqlnPeu89JLr1C3xnv00Ue57bbbWLNmDQ0NDaX4o0mpFOtfEELcMeUSxe49Cl16Msq4\nYy/UrfEaGxu9f//+XlNT073dfPPNaeeQ6/hpK6+tbG+NVwpRueZMmK7xEhRdK6ZvdK2YaNFSTA+U\ne2pV6VGRyqDC3kPluvautXSRyqHC3kvl0r2rSxepPCrsfRD27l1dukhlUmEPQNi6d3XpIpVNhT0g\nYene1aWLiAp7wErVvatLF5EuOo+9gIp13nsUz0vvqXzOYy/mfMqRzmOPDhX2Ajt05BBtL7Zx18t3\nBX7FyOQrMS5eXNnLLgrYiBylpZgCK9Tau9bSRSQTFfYiCWrtXWvpIpJL1sJuZvVmts7MNpvZ62Y2\nJ8O4e8zsj2b2qpldWJiplr++du/q0kUkH7k69k7gO+5+LjAe+JaZfSl5gJnNAM5291HAjcBPCzLT\nCOlp964uXUR6Itdt73a5+6bE473AFuDMlGGtwEOJMRuAWjOrK8BcIyXf7l1duoj0VN5r7GbWAFwI\nbEh56wvA9qTnO4BhfZ1YpcjUvatLF5Heyquwm1kNsBz4dqJzP25IyvPKO6+xD1K79/MXTuXcCe+q\nSxeRXsl5M2szqwZ+ASx19yfTDNkJ1Cc9H5Z47Thdd0oHaGpqoqmpqQdTjb7P2bk0/Go9sc42Dl03\njrOn3sFJJ93I8f9uSiwWIxaLlXoaIqGUNaBk8STNQ8CH7v6dDGNmALe4+wwzGw/c7e7j04yryIBS\nvlLTo3/6JBp3ayoWBZREjspV2C8HngN+z9HllR8AwwHcfVFi3L3ANOBT4Dp3fyXNvlTY08iWHi1k\najVqVNhFjtIlBUoo32u8ROVeq4Wkwi5ylJKnJdDTM17Cdr13EQk3FfYi6+156WG53ruIhJ8Ke5EE\ndV66uncRyUWFvQiCTo+qexeRbFTYC6jQ6VF17yKSjgp7gRTrGi/q3kUklQp7wEp1jRd17yLSRYU9\nQKW+EqO6dxEBFfZAhO1KjOreRSqbCnsflbpLz0Tdu0jlUmHvpbB16ZmoexepPCrsvRDWLj0Tde8i\nlUWFvQfKpUvPRN27SGVQYc9TuXXpmah7F4k+FfYcyr1Lz0Tdu0h0qbBnEZUuPRN17yLRpMKeRlS7\n9EzUvYsL+lkIAAAFg0lEQVRES87CbmYPmtn7ZvZahvebzOwvZrYxsf0w+GkWT9S79EzUvYtERz4d\n+2Li9zPN5tfufmFiuyOAeRVdpXXpmah7Fyl/OQu7uz8PfJxjWFnfa7JSu/RM1L2LlLcg1tgdmGBm\nr5rZKjM7J4B9FoW69OzUvYuUpxMC2McrQL277zOz6cCTwOh0A+fPn9/9uKmpiaampgA+vneWL4db\nb4XZs2HJEhX0TLq699YxrVy74lqWb1nO/S33M6J2REnnFYvFiMViJZ2DSFhZPh2YmTUAHe4+No+x\nbwMXu/tHKa97GLq9P/8ZbrkFXn0VFi/WsktPHDpyiLYX27jr5bu4o/kObrz4RszCsQpnZrh7OCYj\nUmJ9XooxszpL/O02s0uI/2PxUY4fKwmtpfeN1t5FykPOjt3Mfg5MBk4D3gfmAdUA7r7IzL4F3Awc\nAvYB33X3l9Psp2Qdu7r04IWte1fHLnJUXksxgXxQiQp78lr6j36ktfSgbd69mWtXXEvtSbUlXXtX\nYRc5KrLJU53xUhw6c0YkfCJZ2LWWXlxaexcJl0gVdnXppaXuXSQcIlPY1aWHg7p3kdIr+8KuLj2c\n1L2LlE5ZF3Z16eGm7l2kNMqysKtLLy/q3kWKq+wKu7r08qTuXaR4yqawq0uPBnXvIoVXFoVdXXq0\nqHsXKaxQF3Z16dGm7l2kMEJb2NWlVwZ17yLBC11hV5demdS9iwQnVIVdXXplU/cuEoxQFHZ16ZJM\n3btI35S8sKtLl3TUvYv0Xs7CbmYPmtn7ZvZaljH3mNkfzexVM7swnw9Wly75UPcu0nP5dOyLgWmZ\n3jSzGcDZ7j4KuBH4aa4dhqlLD+ud7jWvo9S9i/RMzsLu7s8DH2cZ0go8lBi7Aag1s7p0A8PYpauA\n9kwp56XuXSQ/QayxfwHYnvR8BzAs3cCwdOlSvtS9i+R2QkD7Sb2JcNo26oknVNAlGF3d+4KXFjDu\nv8aVejoioWL5/FfWzBqADncfm+a9+4CYuz+WeP4HYLK7v58yTv9nloJy99QGQ6QiBdGxtwO3AI+Z\n2XhgT2pRB/2lExEplpyF3cx+DkwGTjOz7cA8oBrA3Re5+yozm2FmbwKfAtcVcsIiIpJdXksxIiJS\nPgJNnprZNDP7QyKs9C8ZxvQ4zFSMuZlZk5n9xcw2JrYfFmFOBQl/FXpepThWic+tN7N1ZrbZzF43\nszkZxpXkOyYSGu4eyAb0A94EGogv1WwCvpQyZgawKvH4UuDloD4/gLk1Ae3FmE/SZ04CLgRey/B+\nqY5XrnkV/VglPvcM4ILE4xpga1i+Y9q0hWkLsmO/BHjT3d9x907gMeDvUsbkHWYKWD5zg+NP2ywo\nDzD8VeR5QZGPFYC773L3TYnHe4EtwJkpw0r1HRMJjSALe7qg0hfyGJM2zBSwfObmwITEf99Xmdk5\nRZhXLqU6XrmU/FglTsG9ENiQ8lZYj5lI0QQVUIIMoaQ08gozBSyfz3gFqHf3fWY2HXgSGF3YaeWl\nFMcrl5IeKzOrAZYD30507scNSXkehmMmUjRBduw7gfqk5/XEu6VsY4YlXiu0nHNz90/cfV/i8Wqg\n2syGFGFu2ZTqeGVVymNlZtXAL4Cl7v5kmiGhPGYixRRkYf8tMMrMGsysP3A18fBSsnbg6wDZwkwF\nkHNuZlZnZpZ4fAnxU0E/KsLcsinV8cqqVMcq8ZkPAG+4+90ZhoXymIkUU2BLMe5+yMxuAX5J/CyU\nB9x9i5ndlHi/ZGGmfOYGXAXcbGaHgH3APxR6XmENf+WaFyU4VgkTgdnA781sY+K1HwDDu+ZWqmMm\nEiYKKImIREzJb40nIiLBUmEXEYkYFXYRkYhRYRcRiRgVdhGRiFFhFxGJGBV2EZGIUWEXEYmY/w9u\nEZtHunC15QAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb7d70b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(211)\n",
    "plt.plot([1,2,3], label=\"test1\")\n",
    "plt.plot([3,2,1], label=\"test2\")\n",
    "# Place a legend above this legend, expanding itself to\n",
    "# fully use the given bounding box.\n",
    "plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,\n",
    "           ncol=2, mode=\"expand\", borderaxespad=0.)\n",
    "\n",
    "plt.subplot(223)\n",
    "plt.plot([1,2,3], label=\"test1\")\n",
    "plt.plot([3,2,1], label=\"test2\")\n",
    "# Place a legend to the right of this smaller figure.\n",
    "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 同一个 Axes 中的多个 legend"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以这样添加多个 `legend`："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGWBJREFUeJzt3X+w1HW9x/HXm0B+BMPB0Tw3hLCRRklSMtRU8uS1EY7B\ntcbJMsSUDE2kuU1lIxocb+RNB1PvnQJJRfKWV84xf0KQjFukg5pyxFRuevOSmNmOYAl4+Pm+f+zu\n8bBnzzm7e77f/f7Y52Nmx7O73/PdN1+/vnn7/r738zV3FwAgPQZEHQAAIFgkdgBIGRI7AKQMiR0A\nUobEDgApQ2IHgJTpNbGb2RAze9LM2s3sRTO7voftbjWzl83sOTObFE6oAIByDOztTXfvMLNPu/su\nMxso6Xdmdrq7/66wjZk1Szra3ceb2cmSfiLplHDDBgD0pM9WjLvvyv94iKT3SdpWtMkMSXflt31S\nUoOZHRFkkACA8vWZ2M1sgJm1S3pT0mPu/mLRJqMlvdbl+VZJRwYXIgCgEuVU7Afc/QTlkvWnzKyp\nxGZW/GsBxAYAqEKvPfau3P3vZvaIpE9IynR563VJY7o8PzL/2kHMjGQPAFVw9+LiuVd9TcUcZmYN\n+Z+HSvqMpI1Fmz0oaVZ+m1Mkve3ub5bc4cKDH6MXj9aqP66Su/Oo4LFgwYLIY0jTg+PJ8YzLY+VK\nV2Oj61vfcu3alXutGn1V7P8k6S4zG6DcXwI/c/d1ZjZHktx9qbuvMrNmM3tF0k5JF/e0swE2QAf8\nQOfz1995Xc0/b9bFJ1ysm86+SQ1DGqr6QwBAkh04IH35y9LGjdJ990mf/GT/9tdrxe7uz7v7x939\nBHf/mLvfmH99qbsv7bLdXHc/2t2Pd/dne9rfhtkbNOHwCd1ev7P9Th334+O0+uXV/fijAEAyDRgg\nXXBBLrH3N6lLNf7m6eTRk/XM157Rd0/7rgbYwR9dqN4veeASvd3xdi3DSpympqaoQ0gVjmewOJ7V\nmT5dGjo0mH1ZtT2cij/IzLt+1tOvP62vPPAVvZgtnp6URo8YrWXTl2na+Gk1iQ0A4srM5BVePI0s\nsUtSx74OtWRadMMTNxzUey+g9w4ki1lF+QdFSuXjxCX2Aqp3IB3ySSjqMBKpp2OX2MQuUb0DaUBi\nr14qE3sB1TuQXCT26qU6sUtU70BSkdirF2Rij+WNNoYMHKLrz7qeuXcAoVu/fr2OOeaYqMMIVCwT\newFz7wCCMm7cOK1bt67b61OmTNHmzZtD+cxrr71WEydO1KBBg9TS0hLKZ5QS68QuUb0DCIaZ1Xwc\nc/z48brxxht1zjnn1PSzY5/YC6jeAYQhk8lozJj3FqgdN26cFi9erOOPP14NDQ364he/qN27d3e+\n//DDD+uEE07QqFGjdNppp+n555/vcd+zZs3S1KlTNWLEiJpee0hMYpeo3gGEz8y0cuVKrVmzRq++\n+qo2bdqk5cuXS5I2btyo2bNna9myZdq2bZvmzJmjGTNmaM+ePdEGXSRRib2A6h1IpoULJbPuj4UL\ny9++p22DNG/ePDU2NmrUqFGaPn262tvbJUm33Xab5syZo8mTJ8vMNGvWLA0ePFgbNmwIP6gKJDKx\nS1TvQBItXCi5d3/0ltjL3TZIjY2NnT8PHTpUO3bskCRt2bJFixcv1qhRozofW7du1RtvvBF+UBVI\nbGIvoHoHELbChc+xY8dq/vz52r59e+djx44dOv/888veRy0kPrFLVO8AyrNnzx51dHR0Pvbv31/W\n7xUufF566aVasmSJnnrqKbm7du7cqUceeaSzoi+2b9++zs/Zu3evOjo6dOBA9y9dBi0Vib2A6h1A\nb5qbmzVs2LDOR0tLS59jkF3fP/HEE7Vs2TLNnTtXhx56qMaPH68VK1b0+Ltf/epXNWzYMN1zzz1a\ntGiRhg0bprvvvjvwP1e3mOO4pEAQWHMGqD2WFKhe6teKCQprzgC1RWKvHom9QlTvQG2Q2KtHYq8C\n1TsQPhJ79Ujs/UD1DoSHxF49Ens/Ub0D4SCxV4/EHhCqdyBYJPbqkdgDRPUOBKfWy+KmDYk9YFTv\nQHq5S1OmSJ/8pHTdddLQoVFHVD4Sez9RvQPp9e67yUroBST2gFC9A4gLEnuAqN6BZMpmpeHDk1md\nl1JNYk/VImBBYsVIIHlaW6WPfUx69NGoI4kWFXsZqN6BeMtmpblzpeeek+68M3eRNC2o2ENC9Q7E\nV6FKHztW2rgxXUm9WlTsFaJ6B+Llqqukc89Nb0Ln4mkNMTkDoBZI7DVG9Q4gbCT2iFC9A+FrbZU+\n+lHp2GOjjqS2uHgaEe61CoQnm5XOP1+65prct0fRNxJ7QJicAYJXPPHy8Y9HHVEy0IoJAb13oP9m\nz5Yefzx9c+mVosceM/Tegeo9/niuQk/L0gDVIrHHENU7gP4gsccY1TvQM3eJe3SUxlRMjDE5A3RX\nmHi5996oI0kXEnsNMTkDvKfrxMuMGVFHky60YiJC7x31Ks0rMYaBHnsC0XtHvTn77FylnrR7j0aF\nxJ5QVO+oJ7t3S4MHRx1FcgSe2M1sjKQVkj4gySXd5u63Fm3TJOkBSX/Kv9Tm7t8vsS8Sex+o3gEU\nCyOxN0pqdPd2Mxsu6RlJ57r7S122aZL0TXfv9fIHib08VO9Ii2xWOuQQaeTIqCNJtsDHHd39r+7e\nnv95h6SXJH2w1GdX8qHoGZMzSIPCxMvatVFHUp/K7rGb2ThJv5H00XySL7x+hqT7JG2V9Lqkb7l7\nt14CFXvlqN6RNEy8BC+0i6f5NkxG0vfd/f6i90ZI2u/uu8xsmqRb3P0jJfbhCxYs6Hze1NSkpqam\nSmKtW/TekQStrdKVV0ozZzLx0h+ZTEaZTKbzeUtLS/CJ3cwGSXpY0mp3v7nPHZq9KulEd99W9DoV\nez9QvSPuFi2SzjyTKj1oYVw8NUl3SXrL3f+1h22OkPQ3d3czO0nSve4+rsR2JPYAUL0D9SWMxH66\npN9K2qTcuKMkXS1prCS5+1Izu0LS5ZL2Sdql3ITMhhL7IrEHhOodqB98QanOUL0jCq2t0oc+JE2e\nHHUk9YHVHesMK0ailrree5QlduONxJ5wzL2jForvPfqJT0QdEXpDKyZF6L0jDJdfLj32GHPpUaHH\nDkn03hGsZ56RJkxgLj0qJHZ0onoH0oHEjm6o3lEJ7j0aP0zFoBsmZ1COwsTLT38adSQIAom9DjA5\ng950nXiZOTPqaBAEWjF1ht47CliJMRnosaNs9N5x3nnSUUexEmPckdhREar3+rZvnzRwYNRRoC8k\ndlSF6h2ILxI7qkb1nl7ZbG6M8QMfiDoSVINxR1SNyZl0Kky8rFkTdSSoJSp2dEP1nnzZrHTFFdKm\nTUy8JB0VOwJB9Z5sra3SxIm5NdM3biSp1yMqdvSK6j15br01dxMMEno6cPEUoWFyBogGiR2honoH\nao/Ejpqgeo+HlSulww6TPv3pqCNBmLh4ippgxchoZbPSF74gXXut9P73Rx0N4ojEjqowORONlSsP\nnng56aSoI0Ic0YpBv9F7r41586S1a5lLrzf02BEpeu/heuEF6cMfZiXGekNiR+So3oFgkdgRG1Tv\n/XPggDSAK2AQUzGIESZnqlOYeLnllqgjQZKR2BEaJmcq03Xi5bLLoo4GSUYrBjVB771n3HsUvaHH\njtij997dRRflboLBvUdRCokdiUD1frD9+6X3vS/qKBBXJHYkCtU70DcSOxKnnqr3bFbavVs68sio\nI0GSMO6IxKmXyZm2tty9R3/1q6gjQT2gYkdspLF6Z+IF/UXFjkRLW/X+y1/mqvSxY7n3KGqLih2x\nlIbq/Y47pGOPJaGjf7h4itRhcgb1jsSOVEpD9Q5Ui8SOVItr9d7WJh1yiDR9es0/GnWAi6dItbit\nGJnNSuefL82fLx1+eE0+EigLiR2JEpfJmcJcemHi5ZRTQv04oCK0YpBYUfXev/Md6cEHmUtHbdBj\nR12qde/95ZdzywKwEiNqgcSOusXkDNKKxI66F3T1zpK6iBpTMah7QU3OFCZeFi0KM1ogHL0mdjMb\nY2aPmdkLZvYHM5vXw3a3mtnLZvacmU0KJ1SgPP2dnOk68fLtb4cdLRC8XlsxZtYoqdHd281suKRn\nJJ3r7i912aZZ0lx3bzazkyXd4u7dhr9oxSAKlfTeWYkRcRR6j93M7pf0H+6+rstrSyQ95u7/nX++\nWdIZ7v5m0e+S2BGZcnrvj9wyTUOHcu9RxEuoPXYzGydpkqQni94aLem1Ls+3SuIeMYiVcnrvOz9z\nieb/29skdSTewHI2yrdhWiV9w913lNqk6HnJ0nzhwoWdPzc1NampqamsIIEgFHrvnz/28yWr9+Xt\nd+rX/7uWFSMRqUwmo0wm06999NmKMbNBkh6WtNrdby7x/hJJGXe/J/+cVgxiLZuV/ratQ/+19Tr9\n8PEfMveOWAu8FWNmJul2SS+WSup5D0qald/+FElvFyd1IC4KEy+ZR4foB//8g8jXnAHC0NdUzOmS\nfitpk95rr1wtaawkufvS/Hb/KWmqpJ2SLnb3Z0vsi4odkelt4oVvrSLO+OYpUMIDD0iXXSbNnNn7\nxEtc13tHfSOxAyWsXJlbtKucuXSqd8QNiR0ICNU74oLEDgSI6h1xQGJHXWtrk3bvli64INj9Ur0j\nSqzuiLrU9d6jRx0V/P7jdq9VoC8kdiRa8b1Hw1q4Ky73WgXKQSsGifW970n33lv7lRjpvaOW6LGj\nrvz5z9Lhh0e3EiO9d9QCiR2oMap3hI3EjtTau1caNCjqKHpG9Y6wMBWD1Ok68RJnTM4gTkjsiK2u\nEy8tLVFH0zcmZxAXtGIQO2m49yi9dwSFHjtS4eqrcz31NNx7lN47+ovEjlRwl6yi0zjeqN7RHyR2\nIMao3lENpmKQKNms9MILUUdRO0zOoFZI7IhEYeJl7dqoI6ktJmdQC7RiUFNpmHgJCr13lINWDGLt\noYdqsxJjUlC9IyxU7KiZ1aulhgYSeilU7+gJUzFAwjE5g2IkdiAFqN7RFYkdsdDWlrtIetllUUeS\nbFTvkLh4ioh1XYnx+OOjjib5mHtHtUjsCESt7j1ab5icQTVoxaDffvADacUK5tLDRu+9PtFjRyT+\n+ldp5Mjkr8SYFPTe6wuJHagTVO/1g8SO0HV0SEOGRB0FCqje04+pGISmMPHyzW9GHQm6YnIGpZDY\n0aeuEy+LF0cdDYoxOYNitGLQI1ZiTB567+lDjx2B+vd/l956Kx33Hq039N7Tg8QOoBPVezqQ2AF0\nQ/WebEzFoCrZrPT730cdBcLC5Ez9IbHXucLEy7p1UUeCMDE5U19oxdQpJl7qF733ZKEVg7KsWsVK\njPWM6j39qNjr0G9/Kw0aREIH1XsSMBUDoCpMzsQXiR1A1aje44nEjoO0tUmvvCJddVXUkSBJqN7j\nhYunkHTwvUc/9amoo0HSMPeefCT2lOHeowgCkzPJRismRX70I2npUubSESx679EKpcduZndIOkfS\n39x9Yon3myQ9IOlP+Zfa3P37JbYjsYds27bcKoysxIgw0HuPRliJfYqkHZJW9JLYv+nuM/rYD4kd\nSDiq99oL5eKpu6+XtL2vz67kQ9F/O3dGHQHqEb33ZAji4qlLOtXMnjOzVWbW/d82AlOYePn616OO\nBPWMyZl4K+viqZmNk/RQD62YEZL2u/suM5sm6RZ3/0iJ7XzBggWdz5uamtTU1FR95HWorS23cNfM\nmdzVCPFB7z1YmUxGmUym83lLS0s4X1DqLbGX2PZVSSe6+7ai1+mxV4mVGBF39N7DE8kXlMzsCDOz\n/M8nKfeXxbY+fg0VaG1lLh3xRu89XsqZivmFpDMkHSbpTUkLJA2SJHdfamZXSLpc0j5Ju5SbkNlQ\nYj9U7EAdoHoPFmvFAIgNeu/BYK2YhMtmpfXro44CCAaTM9EhscdEYY2XLhfDgcSj9x4NWjERY+IF\n9YLee3VoxSTMmjWsxIj6QfVeO1TsEXr2WWn3bhI66g/Ve/mYigGQKEzO9I3EDiBxqN57R2KPqba2\nXNtl0aKoIwHii+q9NC6exkzXe49+9rNRRwPEG3PvwSGxh4R7jwKVY3ImGLRiQrBkiXTzzcylA/1B\n7z2HHntMvPOONHAg66UDQaj33juJHUAq1XP1TmKPwN//Lo0cGXUUQH2ox+qdxF5DhTVe9u/P3QgD\nQG3UW/XOuGONtLa+N/Hys59FHQ1QX5ic6RsVewVYiRGIl3qo3mnFhOzuu3NJ/brrmHgB4iTNvXcS\nO4C6ldbqncQOoO6lrXrn4mlAsllp7dqoowBQDdacIbF3U5h4efzxqCMBUK16n5yhFZPHxAvQf2YV\ndQxQpFSOrKYVMzCwiBLs0UelCy+UZs6Uli9n4gXojzgXcHEW5F+KVOySNm+Wtm+nSgf6K19dRh1G\nIvV07JiKARApEnv1gkzsXDwFgJSpq8Te2ipdeWXUUQBAuOoisRfuPXrNNdIFF0QdDYA4Wb9+vY45\n5piowwhU6hN715UYufcoUL/GjRundevWdXt9ypQp2rx5c+Cfl81m9aUvfUmjR49WQ0ODTj/9dD31\n1FOBf04pqU7sK1bkqvT77pNuvJExRqCemVlN5+x37Nihk08+Wc8++6y2b9+uiy66SOecc4527twZ\n+meneirm3Xdz/yShA7XR42RHS/AJ1RdUlk+OOuoo3X777TrzzDMPej2TyejCCy/Ua6+9JilX2V95\n5ZVasWKFtmzZoqlTp+quu+7S4MGDJUkPP/ywrrnmGm3ZskUTJkzQkiVLNHHixLJiGDlypDKZjCZN\nmtTtPaZiyjR0KEkdQGXMTCtXrtSaNWv06quvatOmTVq+fLkkaePGjZo9e7aWLVumbdu2ac6cOZox\nY4b27NnT537b29u1Z88eHX300SH/CVKU2N96K+oIAKTFvHnz1NjYqFGjRmn69Olqb2+XJN12222a\nM2eOJk+eLDPTrFmzNHjwYG3YsKHX/f3jH//QhRdeqIULF2rEiBGhx5/4xF6YeJk1K+pIAKRFY2Nj\n589Dhw7Vjh07JElbtmzR4sWLNWrUqM7H1q1b9cYbb/S4r3fffVfTp0/Xqaeeqquuuir02KWErxVT\nmEufOTN3VyMA8VRpPzxuChddx44dq/nz5+vqq68u6/d2796tc889V2PHjtXSpUvDDPEgiUzsXVdi\nvO8+RhgBlGfPnj3q6OjofD5o0KCyfq9wUfPSSy/V5z73OZ111lmaPHmydu3apUwmozPOOEPDhw8/\n6Hf27t2r8847T8OGDevs0ddKIlsxGzYwlw6gcs3NzRo2bFjno6Wlpc8xyK7vn3jiiVq2bJnmzp2r\nQw89VOPHj9eKFStK/t4TTzyhRx55RL/+9a/V0NCgESNGaMSIEXq8Bjd7SPW4I4DaYhGw6jHuCADo\nUawTezYr3X9/1FEAQLLENrEX1nh5+umoIwGAZIndVAwTLwDQP7Gq2H/zG1ZiBID+itVUzJYt0l/+\nQkIHkoqpmOpxz1MAsVTLZXHTaNUfV2na+GkHvRZKYjezOySdI+lv7l5ybUozu1XSNEm7JH3F3TeW\n2IbEDqDudezrUEumRTc8cYMO+IFu7198wsW66eyb1DCkQVJ4c+x3Spra05tm1izpaHcfL+lrkn7S\n1w5bW6WLLio7RhTJZDJRh5AqHM9gcTx7N2TgEF1/1vXaMHuDJhw+odv7d7bfqeN+fJxWv7y66s/o\nM7G7+3pJ23vZZIaku/LbPimpwcyOKLVh13uPXnZZNeFC4j+coHE8g8XxLM/k0ZP1zNee0XdP+64G\n2MGp+PV3Xlfzz5t1yQOXVLXvIKZiRkt6rcvzrZKOLLUhEy8A8J5yqvdqBDXuWNz/KdlM596jANBd\nb9V7NcqaijGzcZIeKnXx1MyWSMq4+z3555slneHubxZtx5VTAKhCpRdPg/jm6YOS5kq6x8xOkfR2\ncVKvJjAAQHX6TOxm9gtJZ0g6zMxek7RA0iBJcvel7r7KzJrN7BVJOyVdHGbAAIDe1ewLSgCA2gh0\nrRgzm2pmm83sZTMreddWM7s1//5zZjYpyM9Pm76Op5k1mdnfzWxj/nFNFHEmgZndYWZvmtnzvWzD\nuVmmvo4n52b5zGyMmT1mZi+Y2R/MbF4P25V/frp7IA9J75P0iqRxyrVq2iUdW7RNs6RV+Z9PlrQh\nqM9P26PM49kk6cGoY03CQ9IUSZMkPd/D+5ybwR5Pzs3yj2WjpBPyPw+X9D/9zZ1BVuwnSXrF3f/P\n3fdKukfSvxRtU/aXmVDW8ZS6j5qiBA/wi3Yo63hKnJtlcfe/unt7/ucdkl6S9MGizSo6P4NM7KW+\nqDS6jG1KfpkJZR1Pl3Rq/n/NVplZ9284oFycm8Hi3KxCfrR8kqQni96q6PwM8kYb5V6FLevLTCjr\nuDwraYy77zKzaZLul/SRcMNKNc7N4HBuVsjMhktqlfSNfOXebZOi5z2en0FW7K9LGtPl+Rjl/lbp\nbZsj86+huz6Pp7u/4+678j+vljTIzA6tXYipwrkZIM7NypjZIEltku5291J3eq7o/Awysf9e0ngz\nG2dmh0g6X7kvL3X1oKRZktTbl5kgqYzjaWZHWH4BbDM7Sbnx1W21DzUVODcDxLlZvvxxul3Si+5+\ncw+bVXR+BtaKcfd9ZjZX0hrlJjpud/eXzGxO/n2+zFSBco6npPMkXW5m+5RbC/+LkQUcc3zRLlh9\nHU9xblbiNEkzJW0ys8K9LK6WNFaq7vzkC0oAkDKxupk1AKD/SOwAkDIkdgBIGRI7AKQMiR0AUobE\nDgApQ2IHgJQhsQNAyvw/a8UJ8l9tWroAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb8e9588>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "line1, = plt.plot([1,2,3], label=\"Line 1\", linestyle='--')\n",
    "line2, = plt.plot([3,2,1], label=\"Line 2\", linewidth=4)\n",
    "\n",
    "# Create a legend for the first line.\n",
    "first_legend = plt.legend(handles=[line1], loc=1)\n",
    "\n",
    "# Add the legend manually to the current Axes.\n",
    "ax = plt.gca().add_artist(first_legend)\n",
    "\n",
    "# Create another legend for the second line.\n",
    "plt.legend(handles=[line2], loc=4)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其中 `loc` 参数可以取 0-10 或者 字符串，表示放置的位置：\n",
    "\n",
    "loc string | loc code\n",
    "---|---\n",
    "`'best'  `|          0\n",
    "`'upper right' `   | 1\n",
    "`'upper left'  `    |2\n",
    "`'lower left'  `    |3\n",
    "`'lower right' `    |4\n",
    "`'right'       `   | 5\n",
    "`'center left' `    |6\n",
    "`'center right'`   | 7\n",
    "`'lower center'`  |  8\n",
    "`'upper center'` |   9\n",
    "`'center'`          |10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 更多用法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "多个 `handle` 可以通过括号组合在一个 entry 中："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X10VfW95/H3NxKvhgdFY61I0nSKTVO065a4erkh4inL\n20VBvFNWqbJCL5euNWXmltsalWmlD8AMHW21NeuW8uTUCJ0oQof6hNbaQrSFWku0FGmkxpomSEUz\nPoDBWiDf+eOcpIfDOcl5SvbOyee11l6cs/dv//aXk+Sbnd/+PZi7IyIihaso6ABERGRwKdGLiBQ4\nJXoRkQKnRC8iUuCU6EVECpwSvYhIgcs50ZvZXWZ22Mz2pTgeMbO3zOzZ2Pa1XK8pIiLpG5WHOhqB\n7wGb+inzhLtfk4driYhIhnK+o3f3XwBvDFDMcr2OiIhkZyja6B2oMbO9ZvaImX14CK4pIiIx+Wi6\nGcgzQJm7HzOzTwL3Ax8cguuKiAhDkOjd/Wjc60fNbI2Znefur8eXMzNNuiMikgV377d5fNCbbszs\nQjOz2OuPAZaY5Hu5e6i25cuXBx6DYhp+cb322mvcUFnJSaLtlvHb8iT7TgLfLCvjiYcfHlGfk2LK\nz5aOfHSvvBfYDVSaWaeZfc7MFpvZ4liRTwP7zOy3QANwXa7XFAmzratXU3/gQNo/XEXAss5OHlq6\nlO7u7sEMTUaonJtu3H3+AMe/D3w/1+uIDBeHWlqYmMV5i1tbaWpo4PNf/WreY5KRTSNj+xGJRIIO\n4TSKKX1BxVV05EjKY5F+zpsEdOzene9wBhTGr59iyi9Lt41nsJmZhyUWkVysiERY8cQT2Z+7c2ee\nI5JCZmb4AA9jh6J7pciIkssNy4mSkjxGkl+xPhUSoGy/t5ToRfKsZ9y4rM5rA8pravIbTJ7pr+7g\n5PKLVm30Ink2obqagxme48D6qioW1NcPRkgywqmNXiTPurq6uKW2ltvS7GLZA9xaVkbtunVMnzVr\nsMPLWqwt+JR9XV1dbF29mkMtLRQdOdJXpmfcOCZUVzNvyRJKS0v7rTcfdYwEyT7/uP393+4H3dk/\nrtO/ixSKfXv2+BcnT/aT4N7PdhL8i5Mne8uuXUGHPKDEn9F9e/b4DZWV3pni/9YJfkNlpe/bsydl\nnfmoY6RIlSNj+/vPrwMVGKpNiV4KTcuuXf6/ystTJvke8G+WlQ2LJO9+aqLZt2eP/3uOv8jyUcdI\nokQvElJPPPyw31hV5S8kJK8XwG+sqvIntm8POsS09f6Mvvbaa35DZeWACTo+UX+zrMyfePjhvrry\nUUcqV155pY8fP97ffffdU/a/733v85///Od971966SU3Mz958mRWn0djY6Obmd93331ZnZ8pJXqR\nEHv77bd9/apV/tVZs3x5JOJfnTXL169a5W+//XbQoWWk92d0zfLlKZta+ttuqqrq+z/no45kXnrp\nJT/77LO9srLSt27desqxiooK/9nPfnZKWTPzEydOpKyvv2ORSMQ/8pGP+OzZs9P6/HKlRC8ig673\nZ/RrV1+dcYLu/Stm/apVeasjmZUrV/qcOXN81apVfvXVV/ftX7BggRcVFfnZZ5/tY8aM8W9/+9te\nXl7uZuZjxozxsWPH+q9+9StvbGz0mpoar6+v9/PPP9+//vWvJ71Oe3u7FxcXe0tLi5955pn+yiuv\n5PGTTi6XRK/ulSKSkf6meOhP/BQP+agjmU2bNnHttdfymc98hscee4xXX30VgB/+8IeUl5fz8MMP\nc/ToUZYuXcqTTz4JwFtvvcWRI0eYOnUqAE8//TQf+MAHePXVV1m2bFnK61x55ZVMmTKFyy+/nKam\npqz+P0NFiV5EMpLLwJ1Rx47lrY5Ev/zlL3n55Ze55ppruOSSS/jwhz/MPffck7Ke6M3w6SZMmMAX\nvvAFioqKOOuss5KW2bRpE/PmzQNg3rx5bNrU35LZwVOiF5GMpEqQ6eid4iEfdSTauHEjn/jEJxg7\ndiwQTcAbN27MuP6ysrJ+j+/atYv29nbmzp0LwKc//Wn27dvH3r17M77WUNEUCCKSkXxM8ZDvaSLe\neecdtmzZQk9PDxdddBEA7777Lm+++Sb79u3jsssuO+2viFR/VQz018bGjRtxdy677LLT9n/3u9/N\n4H8zdHRHLyIZyccUD/meJuL+++9n1KhRtLa2snfvXvbu3UtraytXXHFF3139hRdeyIsvvth3zgUX\nXEBRUdEp+wbyl7/8hS1btnDnnXf2XWfv3r1873vf45577uHkyZMZ/q+GyEBPa4dqQ71uREKt92c0\n6z7wcWMG8lFHvJkzZ/pNN9102v4tW7b4RRdd5CdPnvQHHnjAy8vL/dxzz/XvfOc77u7+jW98wy+4\n4AIfP368P/XUU3733Xf7FVdckfIzuPfee33ChAmndbs8duyYn3/++b59EMdFpMqRpNHrRnPdiEha\n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\nBe7/A4OqIDdoxkFmAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb8f56d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from numpy.random import randn\n",
    "\n",
    "z = randn(10)\n",
    "\n",
    "red_dot, = plt.plot(z, \"ro\", markersize=15)\n",
    "# Put a white cross over some of the data.\n",
    "white_cross, = plt.plot(z[:5], \"w+\", markeredgewidth=3, markersize=15)\n",
    "\n",
    "plt.legend([red_dot, (red_dot, white_cross)], [\"Attr A\", \"Attr A+B\"])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "自定义 `handle`："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFHJJREFUeJzt3XuMXOV9//H3FwMGRza2s8QkvmRjars4krmJS38EMsZR\n2CK5JI4KMWDLBQX0UwyBP1IuCfVGqK2AJKqaKNzEzSAglFr68UvABAqbNlG4WBSHyzrBEIxvIiSm\nDgYTbPnbP3ZYL+vdndn17Kx5eL+kkefMeeac7zye+cyzz5kzE5mJJKks+410AZKkxjPcJalAhrsk\nFchwl6QCGe6SVCDDXZIKVDPcI+LWiHg9Ip4boM2/RsRLEbE6Io5ubImSpMGqZ+R+G9DW38qIOB34\ni8ycAVwAXN+g2iRJQ1Qz3DPzv4A3B2jyN8Ad1bZPAuMjYlJjypMkDUUj5twnA+t7LG8ApjRgu5Kk\nIWrUAdXotex3GkjSCNq/AdvYCEztsTyletsHRISBL0lDkJm9B9A1NWLk/gCwGCAiTgT+JzNf76th\nZnrJZNmyZSNew75ysS/sC/ti4MtQ1Ry5R8Q9wOeBlohYDywDDqiG9Y2Z+WBEnB4Ra4G3gb8bcjWS\npIaoGe6ZubCONksbU44kqRE8Q3UEVCqVkS5hn2Ff7GZf7GZf7L3YmzmdQe0oIpu1L0kqRUSQQzig\n2ohPy0gaQMSgX5f6iGrkANhwl5rAv1pVS6MHAc65S1KBDHdJKpDhLkkFMtylJoqIpl1Gyvbt25k/\nfz7jx4/nzDPP5O677+a0004btv3tt99+vPLKK8O2/f72tWTJEq666qqm7HcoPKAqfYS1trayefNm\nNm3axMc//vHu248++mhWr17Nq6++yrRp0wa1zfvvv5/f//73bNmyhf326xo/nn322UOqb8mSJUyd\nOpWrr756SPcfTiP9JlqLI3fpIywimD59Ovfcc0/3bc899xzbt28fcnCtW7eOmTNndgf7QHbu3Dmk\nfewrhvIpqGY9ZsNdGiEJPA60VP/NAW4baF3P24bi3HPPZfny5d3Ld9xxB4sXL+4OrqeffprDDjvs\nA0G2YsUKjjrqqD22tWzZMq6++mp+/OMfM3bsWG699VZuv/12Tj755O42++23Hz/60Y+YMWMGs2bN\nAuDSSy9l0qRJHHLIIcyZM4cXXniBm266ibvvvptrr72WsWPHcsYZZ/T7GB555BFmzpzJhAkTWLp0\n97ehvPzyy5x66qm0tLRw6KGHcu6557J169bu9a2trXzve9/jyCOPZPz48Xz1q1/lz3/+c/f66667\njk996lNMmTKFW2+9dcB+/MlPfsJRRx3FhAkTOOmkk3juud2/TNra2sq1117LnDlzGDt2LLt27Rpw\nWw3RxG82S+mjqOdznx5Z/ThkS/Xf7HXpa1097Xtuvx6tra356KOP5qxZs7KzszN37tyZU6ZMyXXr\n1mVE5Lp16zIzc/bs2fnQQw913+9LX/pSfv/73+9zm+3t7blo0aLu5dtuuy0/97nPdS9HRH7xi1/M\nN998M999991cuXJlHnvssbl169bMzFyzZk1u3rw5MzOXLFmSV1111YCPISJy/vz5uXXr1nzttdfy\n0EMPzZUrV2Zm5tq1a/PRRx/N9957L99444085ZRT8pJLLvnA4z/hhBNy8+bNuWXLljziiCPyhhtu\nyMzMhx56KCdNmpQvvPBCvv3227lw4cKMiHz55Ze7a/v2t7+dmZnPPPNMfuITn8innnoqd+3alXfc\ncUe2trbme++9l5mZn/70p/Poo4/ODRs25Lvvvtvn4+jv/6x6+6Az15G7NEL+Fvg3oNLHukp13d8C\nHdVLPe2HatGiRSxfvpxHHnmE2bNnM3ny5A+sX7x4MXfddRcAW7Zs4Wc/+1m/8+i5e0DXryuuuILx\n48czevRoDjzwQN566y06OzvZtWsXs2bN4rDDDvvA9mq5/PLLGTduHFOnTmXu3Lk8++yzABx++OHM\nmzePAw44gJaWFi699FJ+/vOff+C+F198MYcddhgTJkxg/vz53fe97777OO+885g9ezZjxozhO9/5\nzh77fX/q6qabbuLCCy/kuOOOIyJYvHgxo0eP5oknnuhud/HFFzN58mRGjx5d8/E0ggdUpRHSX1C/\nr1JtM7e6/Hgd7YciIli0aBEnn3wyv/vd7z4wJfO+c845h89+9rO888473HfffZxyyilMmjT0n0qe\nOnX37/vMnTuXpUuX8vWvf51169axYMECvvvd7zJ27Ni6t9fzzWDMmDFs27YNgNdff51vfOMb/OIX\nv+Ctt95i165dTJw4sd/7HnzwwWzevBmAzZs3c9xxx3WvG+jA8rp161i+fDk/+MEPum/bsWMHmzZt\n6vMxN4Mjd0lMmzaN6dOn89BDD7FgwYI91k+ZMoUTTzyRFStWcNddd7Fo0aJ+t1XPgdjebS666CJW\n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\nIMNdkgr0v4W1q8xEcgEdAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb8609e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "\n",
    "class AnyObject(object):\n",
    "    pass\n",
    "\n",
    "class AnyObjectHandler(object):\n",
    "    def legend_artist(self, legend, orig_handle, fontsize, handlebox):\n",
    "        x0, y0 = handlebox.xdescent, handlebox.ydescent\n",
    "        width, height = handlebox.width, handlebox.height\n",
    "        patch = mpatches.Rectangle([x0, y0], width, height, facecolor='red',\n",
    "                                   edgecolor='black', hatch='xx', lw=3,\n",
    "                                   transform=handlebox.get_transform())\n",
    "        handlebox.add_artist(patch)\n",
    "        return patch\n",
    "\n",
    "plt.legend([AnyObject()], ['My first handler'],\n",
    "           handler_map={AnyObject: AnyObjectHandler()})\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "椭圆："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRMLQ/wcmM4RiyDPR6wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xb87d1d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib.legend_handler import HandlerPatch\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.patches as mpatches\n",
    "\n",
    "\n",
    "class HandlerEllipse(HandlerPatch):\n",
    "    def create_artists(self, legend, orig_handle,\n",
    "                       xdescent, ydescent, width, height, fontsize, trans):\n",
    "        center = 0.5 * width - 0.5 * xdescent, 0.5 * height - 0.5 * ydescent\n",
    "        p = mpatches.Ellipse(xy=center, width=width + xdescent,\n",
    "                             height=height + ydescent)\n",
    "        self.update_prop(p, orig_handle, legend)\n",
    "        p.set_transform(trans)\n",
    "        return [p]\n",
    "\n",
    "\n",
    "c = mpatches.Circle((0.5, 0.5), 0.25, facecolor=\"green\",\n",
    "                    edgecolor=\"red\", linewidth=3)\n",
    "plt.gca().add_patch(c)\n",
    "\n",
    "plt.legend([c], [\"An ellipse, not a rectangle\"],\n",
    "           handler_map={mpatches.Circle: HandlerEllipse()})\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
